package com.boot.admin.security.token;

import com.boot.admin.security.model.UserInfo;

import java.util.List;
import java.util.Optional;

/**
 * 登录用户缓存
 *
 * @author 李飞洋
 * @date 2025/9/22 01:19
 */
public interface UserCacheProvider {
    /**
     * 缓存登录用户
     *
     * @param key      key/username
     * @param userInfo 登录用户信息
     * @return .
     */
    boolean cacheUser(String key, UserInfo userInfo);

    /**
     * 获取所有缓存的登录用户
     *
     * @return .
     */
    Optional<List<UserInfo>> getCacheUsers();

    /**
     * 清理登录用户
     *
     * @param key key/username
     * @return .
     */
    boolean clearUser(String key);

    /**
     * 获取登录用户
     *
     * @param key key/username
     * @return .
     */
    Optional<UserInfo> getUser(String key);
}
